﻿using NUnit.Framework;
using Spring.Context;
using Spring.Context.Support;
using System.Collections.Generic;
using OpenSda.Agilcont.Common.Business.Contracts;
using OpenSda.Agilcont.Common.Data.Entities;
using OpenSda.Agilcont.Common.Data.Contracts;
using OpenSda.Agilcont.Common.Business.Exceptions;

namespace OpenSda.Agilcont.Common.Business.SfContexts.NmTest
{
    [TestFixture]
    public class EjercicioContableBusinessTest : AbstractBaseDataTests
    {
        private IEjercicioContableBusiness target;
        public IEjercicioContableBusiness EjercicioContableBusiness { set { target = value; } }
        private IEmpresaData empresaData;
        public IEmpresaData EmpresaData { set { empresaData = value; } }

        [Test]
        [ExpectedException(typeof(EjercicioContableCannotBeNullException))]
        public void SaveWhenEjercicioContableIsNullTest()
        {
            target.Save(null);
        }

        [Test]
        public void SaveTest()
        {
            EjercicioContable ejercicioContable = this.Save();
            Assert.IsNotNull(ejercicioContable.Identity);
        }
        private EjercicioContable Save()
        {

            return target.Save(new EjercicioContable()
            {
                Anio = "1999"

            });
          }
        [Test]
        public void EjercicioContableGetByIdTests()
        {
            EjercicioContable e = target.GetById("");
            Assert.IsNotNull(e);
        }

        private EjercicioContable GetBayId()
        {
            return target.GetById(new object());

        }


        public void DeleteTest()
        {
            EjercicioContable ejercicioContable = this.Save();
            target.Delete(ejercicioContable);
            EjercicioContable v = target.GetById(ejercicioContable.Identity);
            Assert.IsNull(v.Identity);
        }
        }

    }



        
    

